// 类型别名
// 给类型起一个新名字
// let str: string = '123'

// type s = string

// let str1: s = '123'

interface Iobj {
  name: string
}
type Ix = Iobj[]
function fn(arg: Iobj, length: number): Ix {
  // 注意: 如果将一个空数组,赋值给变量.则ts自动推论变量的类型是never[]
  // never是ts中一个特殊的类型.表示从未赋值. 其实就是为了强制开发者去定义一个数组的类型
  const arr: Ix = []
  for (let i = 0; i < length; i++) {
    arr.push(arg)
  }
  return arr
}
fn({ name: 'zs' }, 3)

// 字面量类型

// let num: number = 1
// let num: 0 | 1 = 0
// let str: 'a' | 'b' = 'c'
